<?php
namespace Home\Server;
/**
 * Created by PhpStorm.
 * User: Z
 * Date: 2017/3/7
 * Time: 13:48
 * 用户登录注册行为记录
 */
class UserBehaviorService
{
    public $NowTime;                      //当前时间

    function __construct()
    {
        $this ->NowTime                 = time();
    }

    /**
     * Function Behavior_Record
     * @param $user_id          用户UID
     * @param string $type      请求方式 login register
     * @param string $source    来源平台 'pc','android','ios'
     * @param int $version      APP版本号
     * @param string $ip        IP
     * @param int $longitude    坐标 经
     * @param int $latitude     坐标 纬
     * @param string $city      坐标 城市
     * @return mixed
     *
     * Author: 黄盖
     * Date: 2017-3-7 14:48
     * Info: 记录用户登录行为
     */
    public function Behavior_Record( $user_id, $type = 'login', $source = 'pc', $version = 0, $ip = '', $longitude = 0, $latitude = 0, $city = '' )
    {
        //获取每个IP段数据
        $ipData = $this ->IP_To_Int( $ip );

        $BehaviorData = Array(
                        'user_id'   => $user_id,
                        'type'      => $type,
                        'source'    => $source,
                        'version'   => $version,
                        'ip_a'      => $ipData[0],
                        'ip_b'      => $ipData[1],
                        'ip_c'      => $ipData[2],
                        'ip_d'      => $ipData[3],
                        'longitude' => $longitude,
                        'latitude'  => $latitude,
                        'city'      => $city,
                        'time'      => date('Y-m-d H:i:s')
                    );

        return ( new \Think\Model() ) ->table('tp_user_behavior') ->add( $BehaviorData );
    }

    /**
     * Function IP_To_Int
     * @param $ip
     *
     * Author: 黄盖
     * Date: 2017-3-7 14:20
     * Info: 将IP 127.0.0.1 转为 int 127  0  0  1
     */
    public function IP_To_Int( $ip )
    {
        if( empty( $ip ) )
        {
            //TP自带获取ID地址
            $ip = get_client_ip();
        }


        $ipData = explode( '.', $ip );

        if( count( $ipData ) == 4 )
        {
            return $ipData;
        }

        return Array( 0, 0, 0, 0 );
    }
}